#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <fstream>
//QComboBox下拉框控件-示例-本地选择/通过配置文件处理
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    create();

    box_a->addItem("势魏延");
    box_a->addItem("势太史慈");
    box_a->addItem("曹髦");

    box_b->addItem("主公");
    box_b->addItem("忠臣");
    box_b->addItem("反贼");
    box_b->addItem("内奸");

    box_c->addItem("火攻");
    box_c->addItem("南蛮入侵");
    box_c->addItem("杀");

    connect(button,&QPushButton::clicked,this,&Widget::handler);

    //通过配置文件
    //下拉框中的内容，很多时候不是代码中写死的，而是通过文件/网络加载数据得到的
    //需要读取配置文件内容，把文件中的每一行数据读出来，作为ComboBox下拉框条目选项
    //创建读取流
    std::ifstream file("D:/QT_code/qt/test032/config.txt");
    if(file.is_open()==false)
    {
        //打开文件失败
        qDebug()<<"打开文件失败";
        return;
    }
    //按行来进行读取config.txt中的内容
    std::string str;
    //当读取到空行的时候就会返回false,出循环
    while(std::getline(file,str))
    {
        //这里需要将string类型转换为QString类型
        //string类型 转换为 QString类型
        //QString::fromStdString(QString)--- string->QString

        //QString类型 转换为 string类型
        //QString s;
        //s.toStdString();--- QString->string
        box_config->addItem(QString::fromStdString(str));//添加条目
    }
    file.close();//关闭config.txt配置文件
}

Widget::~Widget()
{
    delete ui;
}

void Widget::create()
{
    label_a=new QLabel(this);
    label_b=new QLabel(this);
    label_c=new QLabel(this);

    box_a=new QComboBox(this);
    box_b=new QComboBox(this);
    box_c=new QComboBox(this);

    button=new QPushButton(this);

    label_a->setGeometry(0,0,150,50);
    label_a->setText("请选择武将");

    label_b->setGeometry(150,0,150,50);
    label_b->setText("请选择身份");

    label_c->setGeometry(300,0,150,50);
    label_c->setText("请选择关键手牌");

    box_a->setGeometry(0,50,150,50);
    box_b->setGeometry(150,50,150,50);
    box_c->setGeometry(300,50,150,50);

    button->setText("提交");
    button->setGeometry(200,120,100,50);

    box_config=new QComboBox(this);
    box_config->setGeometry(20,400,300,50);
}

void Widget::handler()
{
    QString str1=box_a->currentText();
    QString str2=box_b->currentText();
    QString str3=box_c->currentText();

    qDebug()<<"武将名称:"<<str1;
    qDebug()<<"身份信息:"<<str2;
    qDebug()<<"关键手牌:"<<str3<<"\n";
}

